#define FILE_MAX_LEN 256
#include <time.h>
#include <stdio.h>
#include <string.h>
#include <sys/types.h>    
#include <sys/stat.h> 
#include <stdlib.h>
#include <dirent.h>
#include <unistd.h>

void rmv_old_files(const char *path, const char *suf, int sec)

{
	char filename[FILE_MAX_LEN] = {0};

	struct tm *TM;

	struct dirent *dirp;

	struct stat statbuf;

	DIR *dp = NULL;

	time_t curr_time;

	int nameLen;

	char *chTemp = NULL;

	curr_time = time((time_t*)NULL);

	dp = opendir(path);

	if (NULL == dp)

	{
		return;

	}

	while((dirp=readdir(dp)) != NULL)

	{
		if (strcmp(dirp->d_name, ".")==0 || strcmp(dirp->d_name, "..")==0)

		{
			continue;

		}

		nameLen = strlen(dirp->d_name);

		chTemp = dirp->d_name;

		if (suf && *suf != '\0')

		{
			int offset;
			offset = nameLen-strlen(suf);

			if (offset<0 || strncmp(suf, chTemp+offset, strlen(suf))!=0)

			{
				continue;

			}

		}

		sprintf(filename, "%s%s", path, dirp->d_name);

		if (!stat(filename, &statbuf))

		{
			/*check the st_mtime of the file, if more than retention_hours ago then delete it*/

			if (curr_time-statbuf.st_mtime >= sec && S_ISREG(statbuf.st_mode))

			{
				unlink(filename);

			}

		}

	}

	closedir(dp);

}
void main()
{
   rmv_old_files("/tmp/fr/", NULL, 20*60);

}
